home *** CD-ROM | disk | FTP | other *** search
/ Computer Shopper 183 / dpcs0503.iso / Components / Microsoft ASP / _SETUP.1 / ASPWizard.jar / asp / wizard / WizardModelDbList1.class (.txt) < prev    next >
Encoding:
Java Class File  |  1998-11-20  |  9.3 KB  |  244 lines

  1. package asp.wizard;
  2.  
  3. import asp.netobjects.nfx.util.ExceptionHandler;
  4. import asp.netobjects.nfx.util.ExternalError;
  5. import asp.netobjects.nfx.util.InternalError;
  6. import asp.netobjects.nfx.wizard.Wizard;
  7. import asp.netobjects.nfx.wizard.WizardPage;
  8. import asp.netobjects.nfx.wizard.WizardPageView;
  9. import asp.util.ResourceUtil;
  10. import asp.wizard.def.DefAbstract;
  11. import asp.wizard.def.DefList;
  12. import asp.wizard.def.DefQuery;
  13. import asp.wizard.util.UiUtil;
  14. import com.sun.java.swing.DefaultListModel;
  15. import com.sun.java.swing.ImageIcon;
  16. import com.sun.java.swing.table.DefaultTableModel;
  17. import com.sun.java.swing.table.TableModel;
  18. import java.lang.reflect.Array;
  19. import java.text.MessageFormat;
  20. import java.util.Vector;
  21.  
  22. public class WizardModelDbList1 extends WizardModelAbstract {
  23.    private static final String ERR_NO_FIELD = "msg.error.nofield";
  24.    private static final String ERR_TOOMANY_FIELDS = "msg.error.toomanyfields";
  25.    private static final String ERR_FIELD_HAS_NO_LABEL = "msg.error.fieldhasnolabel";
  26.    private static final int MSDBLIST_MAX_FIELDS = 20;
  27.    private DefList _defList;
  28.    private boolean _hasHyperlink = false;
  29.    private boolean _previewed = false;
  30.    // $FF: synthetic field
  31.    static Class class$asp$nfx$MSDBList$MSDBList;
  32.    // $FF: synthetic field
  33.    static Class class$asp$wizard$WVPanelDbListFields;
  34.    // $FF: synthetic field
  35.    static Class class$java$lang$String;
  36.    // $FF: synthetic field
  37.    static Class class$asp$wizard$WizardModelDbList3;
  38.  
  39.    public WizardModelDbList1() {
  40.    }
  41.  
  42.    public WizardModelDbList1(Wizard wizard, String bullet, String info, ImageIcon icon, ExceptionHandler handler) {
  43.       super(wizard, bullet, info, icon, handler);
  44.    }
  45.  
  46.    protected WizardPageView getViewSingleInstance() {
  47.       return WizardViewDbList1.getInstance();
  48.    }
  49.  
  50.    public DefList getDefList() {
  51.       return this._defList;
  52.    }
  53.  
  54.    private void setupDefList() throws InternalError, ExternalError {
  55.       if (this._defList == null) {
  56.          WizardManager wm = ((WizardModelAbstract)this).getWizardManager();
  57.          if (wm == null) {
  58.             throw new EWizardModelInt("setupDefList(): getWizardManager() returned null");
  59.          }
  60.  
  61.          DefList aDefList = new DefList();
  62.          String name = ((WizardModelAbstract)this).getDefPage().getUniqueNameFor(aDefList);
  63.          ((DefAbstract)aDefList).setName(name);
  64.          ((DefAbstract)aDefList).setDefQuery(wm.getDefQuery(this));
  65.          ((WizardModelAbstract)this).getDefPage().addElement(aDefList);
  66.          String lblFont = ResourceUtil.getResourceString("asp.nfx.res", class$asp$nfx$MSDBList$MSDBList != null ? class$asp$nfx$MSDBList$MSDBList : (class$asp$nfx$MSDBList$MSDBList = class$("asp.nfx.MSDBList.MSDBList")), "value.labelfont");
  67.          String dataFont = ResourceUtil.getResourceString("asp.nfx.res", class$asp$nfx$MSDBList$MSDBList != null ? class$asp$nfx$MSDBList$MSDBList : (class$asp$nfx$MSDBList$MSDBList = class$("asp.nfx.MSDBList.MSDBList")), "value.datafont");
  68.          aDefList.setLabelFont(lblFont);
  69.          aDefList.setLabelFontSize(2);
  70.          aDefList.setLabelFontColor(0);
  71.          aDefList.setLabelBold(0);
  72.          aDefList.setLabelItalic(1);
  73.          aDefList.setLabelUnderline(1);
  74.          aDefList.setDataFont(dataFont);
  75.          aDefList.setDataFontSize(2);
  76.          aDefList.setDataFontColor(0);
  77.          aDefList.setDataBold(1);
  78.          aDefList.setDataItalic(1);
  79.          aDefList.setDataUnderline(1);
  80.          aDefList.setCellPadding(1);
  81.          aDefList.setCellSpacing(3);
  82.          aDefList.setBorderSize(2);
  83.          this._defList = aDefList;
  84.       }
  85.  
  86.    }
  87.  
  88.    public void validate() throws InternalError, ExternalError {
  89.       super.validate();
  90.       WizardViewDbList1 view = (WizardViewDbList1)((WizardPage)this).getView();
  91.       TableModel tm = view.getFieldSpecTableModel();
  92.       int fieldCount = tm.getRowCount();
  93.       if (fieldCount < 1) {
  94.          String msg = ResourceUtil.getResourceString("asp.wizard.res", class$asp$wizard$WVPanelDbListFields != null ? class$asp$wizard$WVPanelDbListFields : (class$asp$wizard$WVPanelDbListFields = class$("asp.wizard.WVPanelDbListFields")), "msg.error.nofield");
  95.          throw new EWizardModelExt(msg);
  96.       } else if (fieldCount > 20) {
  97.          String msg = ResourceUtil.getResourceString("asp.wizard.res", class$asp$wizard$WVPanelDbListFields != null ? class$asp$wizard$WVPanelDbListFields : (class$asp$wizard$WVPanelDbListFields = class$("asp.wizard.WVPanelDbListFields")), "msg.error.toomanyfields");
  98.          Object[] args = new Object[]{new Integer(20)};
  99.          msg = MessageFormat.format(msg, args);
  100.          throw new EWizardModelExt(msg);
  101.       } else {
  102.          String[] fieldLabels = (String[])UiUtil.getColumnArrayFromTableModel(1, tm, class$java$lang$String != null ? class$java$lang$String : (class$java$lang$String = class$("java.lang.String")));
  103.  
  104.          for(int r = 0; r < fieldCount; ++r) {
  105.             if (fieldLabels[r] == null || fieldLabels[r].equals("")) {
  106.                String err = ResourceUtil.getResourceString("asp.wizard.res", class$asp$wizard$WVPanelDbListFields != null ? class$asp$wizard$WVPanelDbListFields : (class$asp$wizard$WVPanelDbListFields = class$("asp.wizard.WVPanelDbListFields")), "msg.error.fieldhasnolabel");
  107.                Object[] args = new Object[]{new Integer(r)};
  108.                String msg = MessageFormat.format(err, args);
  109.                throw new EWizardModelExt(msg);
  110.             }
  111.          }
  112.  
  113.       }
  114.    }
  115.  
  116.    public void commit() throws InternalError, ExternalError {
  117.       if (this._defList == null) {
  118.          this.setupDefList();
  119.       }
  120.  
  121.       WizardViewDbList1 view = (WizardViewDbList1)((WizardPage)this).getView();
  122.       TableModel tm = view.getFieldSpecTableModel();
  123.       this._defList.setFieldNames((String[])UiUtil.getColumnArrayFromTableModel(0, tm, class$java$lang$String != null ? class$java$lang$String : (class$java$lang$String = class$("java.lang.String"))));
  124.       this._defList.setFieldLabels((String[])UiUtil.getColumnArrayFromTableModel(1, tm, class$java$lang$String != null ? class$java$lang$String : (class$java$lang$String = class$("java.lang.String"))));
  125.       this._hasHyperlink = view.getRowHasHyperlink();
  126.       WizardManager wm = ((WizardModelAbstract)this).getWizardManager();
  127.       WizardModelDbList3 wizardModelDbList3 = (WizardModelDbList3)wm.getModelOfClass(class$asp$wizard$WizardModelDbList3 != null ? class$asp$wizard$WizardModelDbList3 : (class$asp$wizard$WizardModelDbList3 = class$("asp.wizard.WizardModelDbList3")), this);
  128.       if (!view.getRowHasHyperlink()) {
  129.          wizardModelDbList3.getNext(2);
  130.          ((WizardModelAbstract)wizardModelDbList3).setSkip(true);
  131.          this._defList.setHyperlinkField(tm.getRowCount());
  132.       } else {
  133.          ((WizardModelAbstract)wizardModelDbList3).setSkip(false);
  134.       }
  135.  
  136.    }
  137.  
  138.    private DefQuery getDefQuery() {
  139.       DefQuery result = null;
  140.       WizardManager wm = ((WizardModelAbstract)this).getWizardManager();
  141.       if (wm != null) {
  142.          result = wm.getDefQuery(this);
  143.       } else {
  144.          System.err.println("WizardManager not found");
  145.       }
  146.  
  147.       return result;
  148.    }
  149.  
  150.    public void loadView() {
  151.       WizardViewDbList1 view = (WizardViewDbList1)((WizardPage)this).getView();
  152.       DefaultTableModel tm = (DefaultTableModel)view.getFieldSpecTableModel();
  153.       DefaultListModel lm = (DefaultListModel)view.getFieldListModel();
  154.       DefQuery defQuery = this.getDefQuery();
  155.       if (defQuery != null) {
  156.          lm.setSize(0);
  157.  
  158.          try {
  159.             WizDbManager.getFields(defQuery, false, lm);
  160.          } catch (EWizDbManager e) {
  161.             AspWizardExceptionHandler.showMessage(0, ((Throwable)e).getMessage());
  162.          }
  163.       }
  164.  
  165.       view.setRowHasHyperlink(this._hasHyperlink);
  166.       if (this._defList == null) {
  167.          tm.setNumRows(0);
  168.       } else {
  169.          UiUtil.setTableModelFromColumnArray(0, tm, this._defList.getFieldNames());
  170.          UiUtil.setTableModelFromColumnArray(1, tm, this._defList.getFieldLabels());
  171.          UiUtil.validateTableAgainstList(tm, lm, 0);
  172.       }
  173.  
  174.       if (this._previewed) {
  175.          this.updatePreview();
  176.       } else {
  177.          this.clearPreview();
  178.       }
  179.  
  180.    }
  181.  
  182.    public void clearPreview() {
  183.       ((WizardViewDbList1)((WizardPage)this).getView()).clearPreview();
  184.    }
  185.  
  186.    public void updatePreview() {
  187.       this.clearPreview();
  188.       WizardViewDbList1 view = (WizardViewDbList1)((WizardPage)this).getView();
  189.       DefaultTableModel tmPreview = (DefaultTableModel)view.getPreviewTableModel();
  190.       DefaultTableModel tmFieldSpec = (DefaultTableModel)view.getFieldSpecTableModel();
  191.       DefQuery aDefQuery = this.getDefQuery();
  192.       if (aDefQuery != null) {
  193.          Vector firstRecord = aDefQuery.getFirstRecord();
  194.          Object[] columnNames = UiUtil.getColumnArrayFromTableModel(0, tmFieldSpec, class$java$lang$String != null ? class$java$lang$String : (class$java$lang$String = class$("java.lang.String")));
  195.          Object[] columnTitles = UiUtil.getColumnArrayFromTableModel(1, tmFieldSpec, class$java$lang$String != null ? class$java$lang$String : (class$java$lang$String = class$("java.lang.String")));
  196.          if (columnNames == null) {
  197.             while(tmPreview.getRowCount() > 0) {
  198.                tmPreview.removeRow(0);
  199.             }
  200.          } else {
  201.             DefaultListModel fields = new DefaultListModel();
  202.             if (aDefQuery != null) {
  203.                fields.setSize(0);
  204.  
  205.                try {
  206.                   WizDbManager.getFields(aDefQuery, false, fields);
  207.                } catch (EWizDbManager e) {
  208.                   AspWizardExceptionHandler.showMessage(0, ((Throwable)e).getMessage());
  209.                }
  210.             }
  211.  
  212.             int columnCount = columnNames != null ? Array.getLength(columnNames) : 0;
  213.             int i = 0;
  214.             Object[] firstRow = new Object[columnCount];
  215.             Object[][] rows = new Object[2][];
  216.  
  217.             for(int var14 = 1; var14 <= columnCount; ++var14) {
  218.                firstRow[var14 - 1] = firstRecord.elementAt(fields.indexOf(columnNames[var14 - 1]));
  219.             }
  220.  
  221.             rows[0] = columnTitles;
  222.             rows[1] = firstRow;
  223.             tmPreview.setDataVector(rows, columnNames);
  224.          }
  225.  
  226.          this._previewed = true;
  227.       }
  228.  
  229.    }
  230.  
  231.    public boolean isPreviewed() {
  232.       return this._previewed;
  233.    }
  234.  
  235.    // $FF: synthetic method
  236.    static Class class$(String class$) {
  237.       try {
  238.          return Class.forName(class$);
  239.       } catch (ClassNotFoundException forName) {
  240.          throw new NoClassDefFoundError(((Throwable)forName).getMessage());
  241.       }
  242.    }
  243. }
  244.